package com.shengwei.truck.driver.bean;

/**
 * 服务端返回的JSON数据的基类，该类包含了所有后台接口返回的公共字段
 * 其中T泛型，表示服务器返回的data业务数据类型，在JSON中data是key，而value的类型和数据结构是多变的，
 * 因此为了重用和简少代码，这里对data的类型使用了泛型T
 *
 */
public class JsonDataCommon<T> {
    int code;     //200成功，其它值表示失败
    String message;    //错误消息
    T data;       //返回的业务数据
    Throwable throwable; //异常信息

    /**
     * 判断接口业务是否成功，并非请求网络是否成功
     * @return
     */
    public boolean isSuccess()
    {
        if(code == 200) {
            return true;
        }
        return false;
    }
    
    //JSON中key为data的核心数据
    public T getData() {
        return data;
    }
    public void setData(T data) {
        this.data = data;
    }

    /**
     * 获取请求接口失败时的异常信息，如网络异常等。
     * @return
     */
    public Throwable getThrowable() {
        return throwable;
    }
    public void setThrowable(Throwable throwable) {
        this.throwable = throwable;
    }

    /**
     * 获取接口业务 成功与否
     * @return
     */
    public int getcode() {
        return code;
    }
    public void setcode(int code) {
        this.code = code;
    }

    /**
     * 获取接口业务 失败的原因(这里指业务原因：如账号没有注册)
     * @return
     */
    public String getMsg() {
        return message;
    }
    public void setMsg(String msg) {
        this.message = msg;
    }
}
